11088 - End up with more teams (DP), 11282 - Mixing invitations & 1481 - Arrange...
[and.git] / Mi manual de algoritmos / version_maraton_nacional_2008 / src / java / priority_queue.java
blob3d06c32d9d0a240d2daa413aebe7606d084e37ee
1 import java.util.*;
4 class Item implements Comparable<Item>{
5 int destino, peso;
7 Item(int destino, int peso){
8 this.peso = peso;
9 this.destino = destino;
12 * Implementamos toda la javazofia.
14 public int compareTo(Item otro){
15 // Return < 0 si this < otro
16 // Return 0 si this == otro
17 // Return > 0 si this > otro
18 return peso - otro.peso; /* Un nodo es menor que otro si tiene menos peso */
20 public boolean equals(Object otro){
21 if (otro instanceof Item){
22 Item ese = (Item)otro;
23 return destino == ese.destino && peso == ese.peso;
25 return false;
27 public String toString(){
28 return "peso = " + peso + ", destino = " + destino;
32 class Ejemplo {
33 public static void main(String[] args) {
34 PriorityQueue<Item> q = new PriorityQueue<Item>();
35 q.add(new Item(12, 0));
36 q.add(new Item(4, 1876));
37 q.add(new Item(13, 0));
38 q.add(new Item(8, 0));
39 q.add(new Item(7, 3));
40 while (!q.isEmpty()){
41 System.out.println(q.poll());